SPSS 交叉表(CROSSTABS) - 简易教程与示例

作者:Ruben Geert van den Berg,归档于 SPSS 表格SPSS A-Z

SPSS 的 CROSSTABS 命令用于生成列联表(contingency tables),即针对一个变量的每个值,分别计算另一个变量的频数。如果满足假设条件,可以进行 卡方检验,以检验变量之间的关联是否具有统计学意义。本教程旨在快速介绍 CROSSTABS 的主要选项。

我们将使用 freelancers.sav 数据文件作为测试数据。

SPSS 交叉表测试数据

SPSS 交叉表 - 最小化规范

以下 语法 展示了最简单的 CROSSTABS 命令。它生成一个表格,其中包含 sector_2011 中每个值对应的 sector_2010 的频数。屏幕截图如下所示。

***最小化 CROSSTABS 命令。
**
crosstabs sector_2010 by sector_2011.

SPSS 交叉表输出 1

SPSS 交叉表 - CELLS 子命令

默认情况下,CROSSTABS 仅显示频数(计数)。但是,通过显示行百分比或列百分比(column percentages),变量之间的关联通常会变得更加明显。可以通过添加 CELLS 子命令来获取这些百分比。

请注意,可以同时选择多个单元格内容;下面的第二个示例包括列百分比和频率。在 CELLS 子命令上指定 ALL 可以全面了解所有选项。

***1. 交叉表,单元格中仅包含列百分比。
**
crosstabs sector_2010 by sector_2011/cells column.

***2. 交叉表,单元格中包含频率和列百分比。
**
crosstabs sector_2010 by sector_2011/cells count column.

SPSS 交叉表输出 2

SPSS 交叉表 - 多维表

多维表是通过在 CROSSTABS 中包含多个 BY 子句生成的。例如,下面的语法生成 sector_2011 的频率,针对 gendersector_2010 的每个组合分别计算。以下屏幕截图显示了(部分)结果。

***三维交叉表(或列联表)。
**
crosstabs sector_2010 by sector_2011 by gender
/cells column.

SPSS 交叉表输出 3

SPSS 交叉表 - 多个表,相似的列

可以通过单个 CROSSTABS 命令生成具有相同列变量但行变量不同的多个表;只需BY 关键字之前指定多个变量名(可能使用 TO 关键字)。以下语法给出一个示例。

***多个表,相同的列变量,不同的行变量。
**
crosstabs sector_2011 to sector_2014 by sector_2010.

SPSS 交叉表 - 多个表,相似的行

BY 关键字之后指定多个变量会导致生成多个表,这些表具有不同的列变量,但具有相同的行变量。

***多个表,相同的行变量,不同的列变量。
**
crosstabs sector_2010 by sector_2011 to sector_2014.

SPSS 交叉表 - BARCHART 子命令

可以通过简单地添加 BARCHART 子命令从 CROSSTABS 中获得聚类条形图。但是,我们更喜欢通过 GRAPH 命令生成此类图表,因为它允许我们为图表设置适当的标题。

可以通过 SPSS 图表模板(.sgt)文件来设置通过任何一种方式生成的图表的样式,我们对下面的屏幕截图使用了该文件。

***带有条形图的交叉表。
**
crosstabs sector_2010 by sector_2011
/cells column
/barchart.

SPSS 交叉表输出 4

SPSS 交叉表 - STATISTICS 子命令

如本教程的介绍中所述,CROSSTABS 提供 卡方检验,用于评估所涉及变量之间关联的统计显著性。通过在 STATISTICS 子命令上指定 CHISQ 来获得它。

请记住,即使统计假设不成立,SPSS 也会很乐意生成测试结果,在这种情况下,这些结果可能完全不正确。

除了卡方检验统计量外,还有许多其他统计量可用。要获得完整概述,请在 STATISTICS 子命令上指定 ALL 或查阅命令语法参考。

***带有卡方独立性检验的交叉表。
**
crosstabs sector_2010 by sector_2011
/cells column
/statistics chisq.

SPSS 交叉表输出 5